Ejercicios Random Networks vs Real Networks

Ejercicios Diferencia en Distribución de Grados

Compare la distribución de grados de una red real contra una red aleatoria.

  • Baje un red real de SNAP
  • Cree una red aleatoria con el mismo número de links y nodos
  • Compare la distribución de grados

In [14]:
edges =[]
for line in open('facebook_combined.txt'):
    if line[0] != '#':
        # print(line.replace('\n','').split(' ')) # \n es salto de linea, .split(' ') -> separar por espacio, .split('\t') -> si esta separado por tabulación
        d = line.replace('\n','').split(' ')
        edges.append((d[0],d[1]))
#print(edges)

In [34]:
import networkx as nx
G = nx.Graph()  # G = nx.Graph(edges), otro modo de crear el grafo
G.add_edges_from(edges)
degrees = [degree for _, degree in G.degree().items()]

In [35]:
G_rand = nx.Graph()
N = len(G.nodes())
p = 2*len(edges)/(N*(N-1))
G_rand = nx.gnp_random_graph(N,p)
#print(d)

In [38]:
import seaborn as sns
sns.set()
%matplotlib inline
ax = sns.distplot(list(G.degree().values()))
sns.distplot(list(G_rand.degree().values()))
#ax.set(xscale="log", yscale="log")


/Users/didergonzalezarroyave/anaconda/lib/python3.6/site-packages/statsmodels/nonparametric/kdetools.py:20: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
  y = X[:m/2+1] + np.r_[0,X[m/2+1:],0]*1j
Out[38]:
<matplotlib.axes._subplots.AxesSubplot at 0x10f7897f0>

Ejercicios Comparación Tamaño del componente Gigante

Genere varias realizaciones de la red aleatoria y compare el tamaño del componente gigante contra el de la red real


In [ ]:

Ejercicio Comparación Número de componentes

Genera varias realizaciones de la red aleatoria y compare la cantidad de componentes


In [ ]: